import axios from "axios";
import { toLoginPage } from "./businessUtils";
import { Message } from "@arco-design/web-react";
import { ResponseCode } from "@/enum/ResponseCode";
const { REACT_APP_ENV = "prod" } = process.env;
const baseURL =
  REACT_APP_ENV === "prod"
    ? "https://127.0.0.1:8101/api"
    : "http://127.0.0.1:8000/api";
const request = axios.create({
  baseURL: "http://127.0.0.1:9090/api",
  timeout: 10000,
  withCredentials: true,
});
// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
request.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    const { data } = response;

    if (data.code === ResponseCode.UNAUTHORIZED) {
      Message.warning("请先登录");
      toLoginPage();
      return Promise.reject(data);
    } else if (data.code === ResponseCode.FORBIDDEN) {
      Message.error("无权访问");
      toLoginPage();
      return Promise.reject(data);
    } else if (data.code === ResponseCode.SERVER_ERROR) {
      Message.error("服务器错误，请重试");
      return Promise.reject(data);
    }
    return response;
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default request;
